package sort;

/**
 * @author zxl
 * @version 1.0
 * @date 2021/12/4 20:44
 * 插入排序  相扑克牌  将第一个当作手中的第一张牌（无需排序），将其他的牌当作摸的牌，再将其加入到合适的位置
 */
public class InsertionSorting {
    public static void main(String[] args) {
        int[] a = new int[]{1,3,5,2,11,56,32,43,12,54,76,90,31,67,45,76,53,87,21};
        // 起始为1  即手中已有第一张牌  不交换   i表示摸到的牌
        for (int i = 1; i < a.length; i++) {
            // 记录摸到牌的位置
            int num = i;
            // 当摸到的牌小于上一张的牌，即交换位置
            while (a[num] < a[num-1] && num > 0){
                int temp = a[num];
                a[num] = a[num - 1];
                a[num -1] = temp;
                //将摸到手中的牌的位置减1
                num --;
            }
        }
        for (int i : a) {
            System.out.print(i + " ");
        }
    }
}
